var tool = {};
// 单个段补全
tool.ver = function(p){
    var i = (p+"").length;
    if(i==1){
        return "000"+p;
    }else if(i==2){
        return "00"+p;
    }else if(i==3){
        return "0"+p;
    }else if(i==0){
        return "0000";
    }else{
        return p;
    }
}
// ipv6补全
tool.full = function(ipv6){
    var ipv6s = ipv6.split(":");
    var len = ipv6s.length;
    var need = 8-len;
    var bb = "::";
    for (var i = need - 1; i >= 0; i--) {
        bb += ":";
    }
    ipv6 = ipv6.replace(/::/,bb);
    ipv6s = ipv6.split(":");
    for (var i = 7; i >= 0; i--) {
        ipv6s[i] = tool.ver(ipv6s[i]);
    }
    return ipv6s.join(":");
}
// IPv6转二进制
tool.bin = function(ipv6){
    var ipv6 = tool.full(ipv6);
    var ipv6s = ipv6.split(":");
    var leter = {0:'0000',1:'0001',2:'0010',3:'0011',4:'0100',5:'0101',6:'0110',7:'0111',
            8:'1000',9:'1001','a':'1010','b':'1011','c':'1100','d':'1101','e':'1110','f':'1111'};
    var plsai = ipv6s.join("").split('');
    for (var i = 31; i >= 0; i--) {
        plsai[i] = leter[plsai[i]];
    }
    return plsai.join("");
}
// 获取前32位的int
tool.pre32 = function(ipv6){
    ipv6 = tool.full(ipv6);
    var pre2 = ipv6.substring(0,9);
    pre2 = pre2.replace(/:/,'');
    return parseInt(pre2,16);
}
// 获取该IP段的最小，最大值
tool.range = function(r='2409:8000::/20'){
    var ipmin = r.split("/");
    var range_min = tool.pre32(ipmin[0]);
    var pow = 32-ipmin[1];
    var long = Math.pow(2,pow);
    var range_max = range_min + long -1;
    return [range_min,range_max,range_min.toString(16),range_max.toString(16)];
    // console.log(range_min.toString(16),range_max.toString(16));
}
// 有效IP库
// tool.ranges = function(){
//     var yd = "2001:e80::/32|2400:d200::/32|2409:8000::/20";
//     var lt = "2001:e18::/32|2001:e88::/32|2400:3200::/32|2400:32c0::/32|2401:7700::/32|2401:9600::/32|2401:be00::/32|2402:2d00::/32|2402:5bc0::/32|2403:1dc0::/32|2403:4280::/32|2403:6d80::/32|2403:c480::/32|2403:e500::/32|2403:ed00::/32|2404:3480::/32|2404:3700::/32|2404:7d00::/32|2404:8700::/32|2408:4000::/32|2408:8000::/20";
//     var dx = "2001:c68::/32|2400:7680::/32|2401:8380::/32|2402:4e00::/32|2402:8800::/32|2404:3b00::/32|2404:a180::/32|2406:cd80::/32|2406:ce80::/32|2406:cf80::/32|2406:d080::/32|2406:d180::/32|2406:d280::/32|2406:d380::/32|2406:d480::/32|2406:d580::/32|2406:d680::/32|2406:d780::/32|2406:d880::/32|2406:d980::/32|2406:db80::/32|2406:dc80::/32|2406:de80::/32|2406:df80::/32|2406:e080::/32|2406:e180::/32|2406:e380::/32|240e::/20";
//     var jyw = "2001:da8::/32|2400:a480::/32";
//     var ranges = [];
//     var yds = yd.split("|");
//     for (var i = 0; i < yds.length; i++) {
//         var r = tool.range(yds[i]);
//         let range = {'isp':'yd','start':r[0],'end':r[1],'read':yds[i],'range':r[2]+","+r[3]};
//         ranges.push(range);
//     }

//     var lts = lt.split("|");
//     for (var i = 0; i < lts.length; i++) {
//         var r = tool.range(lts[i]);
//         let range = {'isp':'lt','start':r[0],'end':r[1],'read':lts[i],'range':r[2]+","+r[3]};
//         ranges.push(range);
//     }

//     var dxs = dx.split("|");
//     for (var i = 0; i < dxs.length; i++) {
//         var r = tool.range(dxs[i]);
//         let range = {'isp':'dx','start':r[0],'end':r[1],'read':dxs[i],'range':r[2]+","+r[3]};
//         ranges.push(range);
//     }
//     var jyws = jyw.split("|");
//     for (var i = 0; i < jyws.length; i++) {
//         var r = tool.range(jyws[i]);
//         let range = {'isp':'jyw','start':r[0],'end':r[1],'read':jyws[i],'range':r[2]+","+r[3]};
//         ranges.push(range);
//     }
//     return ranges;
// }
// 获取运营商名称
tool.getIsp = function(isp){
    var isps = {'dx':"电信",'lt':'联通','yd':"移动",'jyw':"教育网"};
    return isps[isp];
}
